package negocio;

import java.sql.SQLException;
import java.util.Iterator;

import repositorio.ConexaoBD;
import repositorio.RepositorioEspecialista;
import dados.Especialista;
import excecoes.EspecialistaNaoExisteException;

public class ControladorEspecialista {

	private RepositorioEspecialista repositorioEspecialista;

	public ControladorEspecialista(ConexaoBD conexao){
		this.repositorioEspecialista = new RepositorioEspecialista(conexao);
	}

	public void cadastrar(Especialista especialista) throws SQLException{
		this.repositorioEspecialista.inserir(especialista);
	}

	public void editar(Especialista especialista) throws SQLException{
		this.repositorioEspecialista.editar(especialista);
	}

	public void remover(Especialista especialista) throws EspecialistaNaoExisteException, SQLException{
		this.repositorioEspecialista.remover(especialista.getId());

	}

	public Especialista buscar(Especialista especialista) throws EspecialistaNaoExisteException, SQLException{
		Especialista temp = this.repositorioEspecialista.buscar(especialista.getId());

		if(temp == null){
			throw new EspecialistaNaoExisteException();
		}
		else{
			return temp;
		}
	}

	public Iterator<Especialista> getIterator() throws SQLException{
		return this.repositorioEspecialista.iterator();

	}

	public boolean existe(Especialista especialista) throws SQLException{
		boolean retorno = false;

		Especialista temp = this.repositorioEspecialista.buscar(especialista.getId());

		if(temp != null){
			retorno = true;
		}

		return retorno;
	}
}
